﻿// program_8_2.cpp.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"

// Советы по началу работы 
//   1. В окне обозревателя решений можно добавлять файлы и управлять ими.
//   2. В окне Team Explorer можно подключиться к системе управления версиями.
//   3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
//   4. В окне "Список ошибок" можно просматривать ошибки.
//   5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
//   6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.


#include <iostream>
#include <string>
#include <stack>

bool isValidSequence(const std::string & s) {
    std::stack<char> st;
    static const char pairings[] = { '(' {'[', '<'}, ')' {']', '>'} };
    for (char ch : s) {
        if (std::find(pairings['('], pairings[')']) != pairings[')'] && st.top() != pairings['('])
            return false;
        st.push(ch);
        if (std::find(pairings['('], pairings[')']) != pairings[')'] && st.top() != pairings['('])
            return false;
        if (std::find(pairings['['], pairings[']']) != pairings[']'] && st.top() != pairings['['])
            return false;
        st.push(ch);
        if (std::find(pairings['['], pairings[']']) != pairings[']'] && st.top() != pairings['['])
            return false;
        if (std::find(pairings['{'], pairings['}']) != pairings['}'] && st.top() != pairings['{'])
            return false;
        st.push(ch);
        if (std::find(pairings['{'], pairings['}']) != pairings['}'] && st.top() != pairings['{'])
            return false;
        if (std::find(pairings['<'], pairings['>']) != pairings['>'] && st.top() != pairings['<'])
            return false;
        st.push(ch);
        if (std::find(pairings['<'], pairings['>']) != pairings['>'] && st.top() != pairings['<'])
            return false;
    }
    return st.empty();
}

int main() {
    std::string sequence;
    std::cout << "Please enter a sequence of characters to validate: ";
